package cn.oowoo.jsr303.common.dto;

import com.fasterxml.jackson.annotation.JsonView;
import lombok.Data;

@Data
public class User {
    public interface NormalView {}
    //如果对外暴露的接口，正常情况下不让用户密码对外公开，不对password进行序列化，但是能看到密码的序列化肯定也能看到用户名
    public interface PasswordView extends NormalView{}

    private Integer id;
    @JsonView(NormalView.class)
    private String userName;
    @JsonView(PasswordView.class)
    private String password;
}
/*
在某一些请求返回的JSON中，我们并不希望返回某些字段。而在另一些请求中需要返回某些字段。
 @JsonView的使用步骤
1.使用接口来声明多个视图
2.在值对象的get方法上指定视图
3.在Controller的方法上指定视图

 */